﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using DingApi.Models;
using System.Data;

using System.Web;
using Dingding.Helper;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NCommon;


namespace DingApi.Controllers
{
    [RoutePrefix("api/Pabm03p")]
    public class Pabm03pController : ApiController
    {   

        [HttpPost]
        [Route("PostPabm03p")]

        //多记录查询
        public System.Data.DataSet PostPabm03p([FromBody]  JObject obj)
        {

          

            //obj对象区分大小写的； obj["ASMAT_NAME"] 报错。
            EI.EIInfo inBlock = new EI.EIInfo();
          



            inBlock.Tables[0].Columns.Add("ASMAT_NAME");
            inBlock.Tables[0].Columns.Add("APPLY_BILL_NO");      
            inBlock.Tables[0].Columns.Add("BRANCH_CODE");        
            inBlock.Tables[0].Columns.Add("DPTMENT_CODE");

            inBlock.Tables[0].Columns.Add("BILL_STATUS");  
       
            inBlock.Tables[0].Columns.Add("REC_CREATE_TIME");    
            inBlock.Tables[0].Columns.Add("REC_REVISE_TIME");    

          



            inBlock.Tables[0].Rows.Add();

            inBlock.sys_info.company_code   = "LT";
            inBlock.sys_info.userid         = obj["USERID"].ToString();
            inBlock.sys_info.formname       = obj["FORMNAME"].ToString();   

            inBlock.Tables[0].Rows[0]["ASMAT_NAME"]           =  obj["ASMAT_NAME"].ToString();
            inBlock.Tables[0].Rows[0]["APPLY_BILL_NO"]         =  obj["APPLY_BILL_NO"].ToString();
            inBlock.Tables[0].Rows[0]["BRANCH_CODE"]        =  obj["BRANCH_CODE"].ToString();
            inBlock.Tables[0].Rows[0]["DPTMENT_CODE"]        =  obj["DPTMENT_CODE"].ToString();

            inBlock.Tables[0].Rows[0]["BILL_STATUS"] = obj["BILL_STATUS"].ToString();      
   
            inBlock.Tables[0].Rows[0]["REC_CREATE_TIME"]    =  obj["REC_CREATE_TIME"].ToString();
            inBlock.Tables[0].Rows[0]["REC_REVISE_TIME"]    =  obj["REC_REVISE_TIME"].ToString();


            //仅查询最近最近2天的；不然数据太多，影响小程序效率；
            if (inBlock.Tables[0].Rows[0]["REC_CREATE_TIME"].ToString().Trim()=="")
            {
                inBlock.Tables[0].Rows[0]["REC_CREATE_TIME"] =    DateTime.Now.AddDays(-2).ToString("yyyyMMddHHmmss");
            }











            EI.EIInfo outBlock = EI.EITuxedo.CallService("pabm03p_inq", inBlock);

            //小代码转换；
            EI.EIInfo outBlock_TEMP = EF.Utility.GetCodeClassValue("PAB1",  "FIBR", "FIDP");
            DataTable dtTemp = null;

        

            for (int i = outBlock.Tables[0].Rows.Count - 1; i >= 0; i--)
            {
                 
                 
                string BILL_STATUS = outBlock.Tables[0].Rows[i]["BILL_STATUS"].ToString().Trim();
                if (BILL_STATUS.Trim() != "")
                    dtTemp = outBlock_TEMP.Tables["PAB1"].Select("CODE  = '" + BILL_STATUS + "'").CopyToDataTable<DataRow>();

                if (dtTemp != null && dtTemp.Rows.Count == 1)
                    outBlock.Tables[0].Rows[i]["BILL_STATUS"] = dtTemp.Rows[0]["CODE_DESC_1_CONTENT"];

  

                 //BRANCH_CODE 反馈分公司 
                string BRANCH_CODE = outBlock.Tables[0].Rows[i]["BRANCH_CODE"].ToString().Trim();
                if (BRANCH_CODE.Trim() != "")
                    dtTemp = outBlock_TEMP.Tables["FIBR"].Select("CODE  = '" + BRANCH_CODE + "'").CopyToDataTable<DataRow>();

                if (dtTemp != null && dtTemp.Rows.Count == 1)
                    outBlock.Tables[0].Rows[i]["BRANCH_CODE"] = dtTemp.Rows[0]["CODE_DESC_1_CONTENT"];


                // 
                string DPTMENT_CODE = outBlock.Tables[0].Rows[i]["DPTMENT_CODE"].ToString().Trim();
                if (DPTMENT_CODE.Trim() != "")
                    dtTemp = outBlock_TEMP.Tables["FIDP"].Select("CODE  = '" + DPTMENT_CODE + "'").CopyToDataTable<DataRow>();

                if (dtTemp != null && dtTemp.Rows.Count == 1)
                    outBlock.Tables[0].Rows[i]["DPTMENT_CODE"] = dtTemp.Rows[0]["CODE_DESC_1_CONTENT"];



              
                string REC_CREATE_TIME = outBlock.Tables[0].Rows[i]["REC_CREATE_TIME"].ToString();
                if (REC_CREATE_TIME.Length >= 12)
                    outBlock.Tables[0].Rows[i]["REC_CREATE_TIME"] = REC_CREATE_TIME.Substring(4, 2) + "-" + REC_CREATE_TIME.Substring(6, 2) + " " + REC_CREATE_TIME.Substring(8, 2) + ":" + REC_CREATE_TIME.Substring(10, 2);

                   // outBlock.Tables[0].Rows[i]["REC_CREATE_TIME"] = REC_CREATE_TIME.Substring(2, 2) + "-" + REC_CREATE_TIME.Substring(4, 2) + "-" + REC_CREATE_TIME.Substring(6, 2) + " " + REC_CREATE_TIME.Substring(8, 2) + ":" + REC_CREATE_TIME.Substring(10, 2);


            }

            
            
            outBlock.Tables[0].TableName = "Table0";


            //系统信息；
            outBlock.Tables.Add("SYS");
            outBlock.Tables["SYS"].Columns.Add("FLAG");
            outBlock.Tables["SYS"].Columns.Add("MSG");
            outBlock.Tables["SYS"].Rows.Add(outBlock.sys_info.flag, outBlock.sys_info.msg);            
            return outBlock;


        }


        //[HttpPost]
        //[Route("PostPabm03p_Info")]

        //单记录查询
        public System.Data.DataSet PostPabm03p_Info([FromBody]  JObject obj)
        {

            //obj对象区分大小写的； obj["ASMAT_NAME"] 报错。
            string apply_bill_no = obj["APPLY_BILL_NO"].ToString();

            EI.EIInfo outBlock = new EI.EIInfo();
            outBlock.Tables[0].TableName = "FILES";
             
            outBlock.Tables["FILES"].Columns.Add("FURL");           
            outBlock.Tables["FILES"].Columns.Add("FNAME");
            outBlock.Tables["FILES"].Columns.Add("FTYPE");



            string f_type = "";
            if (apply_bill_no.Length > 0)
            { 
                MyFft ftp = new MyFft("_SQ/");
                string[] str = ftp.LisFiles(apply_bill_no);
                if (str != null)
                {
                    for (int i = 0; i < str.Length; i++)
                    { 
                        f_type = str[i].Substring(str[i].LastIndexOf(".") + 1, (str[i].Length - str[i].LastIndexOf(".") - 1));   //扩展名
                        //if ( f_type =="jpg"
                        //    || f_type == "gif"
                        //    || f_type == "png"                       
                        //    || f_type == "bmp"
                        //    )
                             
                            outBlock.Tables["FILES"].Rows.Add("http://58.210.172.37:8019/_SQ/" + apply_bill_no + "/" + str[i].ToString()
                                , str[i].ToString()
                                , f_type.ToLower());

                    }
                }
            }



            //系统信息；
            outBlock.Tables.Add("SYS");
            outBlock.Tables["SYS"].Columns.Add("FLAG");
            outBlock.Tables["SYS"].Columns.Add("MSG");
            outBlock.Tables["SYS"].Rows.Add(outBlock.sys_info.flag, outBlock.sys_info.msg);
            return outBlock;


        }


         

        //[HttpPost]
        //[Route("PostPabm03p_inq")]

        ////高级查询的查询条件获取，【主要是各类小代码，类似之前画面的初始化参数】
     

        [HttpPost]
        [Route("PostPabm03p_pro")]

        //审核、驳回、审核撤销
        public System.Data.DataSet PostPabm03p_pro([FromBody]  JObject obj)
        {



            //obj对象区分大小写的； obj["ASMAT_NAME"] 报错。
            EI.EIInfo inBlock = new EI.EIInfo();


            //系统信息；
            //inBlock.Tables.Add("SYS");
            //inBlock.Tables["SYS"].Columns.Add("FLAG");
            //inBlock.Tables["SYS"].Columns.Add("MSG");
            //inBlock.Tables["SYS"].Rows.Add(-1, "error outBlock.sys_info.msg");
            //return inBlock;

         
             
              
          
           
            inBlock.Tables[0].Columns.Add("APPLY_BILL_NO");    
            inBlock.Tables[0].Columns.Add("COMPANY_CODE");  
 
            inBlock.Tables[0].Columns.Add("APPLY_REASON");
           


            inBlock.Tables[0].Rows.Add();
            inBlock.sys_info.company_code   =   "LT";
            inBlock.sys_info.userid         =   obj["USERID"].ToString();
            inBlock.sys_info.username       =   obj["USERNAME"].ToString();
            inBlock.sys_info.formname       =   obj["FORMNAME"].ToString();

           
            inBlock.Tables[0].Rows[0]["APPLY_BILL_NO"]  = obj["APPLY_BILL_NO"].ToString();
            inBlock.Tables[0].Rows[0]["COMPANY_CODE"]   = obj["COMPANY_CODE"].ToString();

            inBlock.Tables[0].Rows[0]["APPLY_REASON"] = obj["APPLY_REASON"].ToString();
            
            
            inBlock.Tables[0].TableName = obj["ACTION"].ToString();
            EI.EIInfo outBlock = EI.EITuxedo.CallService("pabm03p_save", inBlock);


            //系统信息；
            outBlock.Tables.Add("SYS");
            outBlock.Tables["SYS"].Columns.Add("FLAG");
            outBlock.Tables["SYS"].Columns.Add("MSG");
            outBlock.Tables["SYS"].Rows.Add(outBlock.sys_info.flag, outBlock.sys_info.msg);
            return outBlock;


        }

    }
}